package servicos;

/**
 * CifraRSA.java
 *
 * Created on 19 de Outubro de 2007, 18:43
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import javax.crypto.Cipher;

public class CifraRSA {
    
   public static void main(String args[]) throws Exception {
 // Gera um par de chaves RSA de 1024 bits  
             KeyPairGenerator gerador = KeyPairGenerator.getInstance("RSA");  
             gerador.initialize(1024);  
             KeyPair chaves = gerador.generateKeyPair();              
               
             // Cria uma implementacao do RSA  
             Cipher cifra = Cipher.getInstance("RSA");  
               
             // Criptografa a mensagem com a chave publica  
             // inicializa o algoritmo para a criptografia  
               
             cifra.init(Cipher.ENCRYPT_MODE, chaves.getPublic());  
               
             String mensagem = "Edemilson Danker aaaaaaaaaaa";
             // criptgrafia o texto inteiro  
             byte[] mensagemCifrada = cifra.doFinal(mensagem.getBytes()); 
             System.out.println(mensagemCifrada.length);
               
             cifra.init(Cipher.DECRYPT_MODE,chaves.getPrivate());  
             byte[] mensagemOriginal = cifra.doFinal(mensagemCifrada);  
               
               
             System.out.println("Chave Publica: "+chaves.getPublic().toString());  
            System.out.println("Chave Privada: "+chaves.getPrivate().toString());  
               
               
               
             System.out.println("A mensagem cifrada fica: ");  
             System.out.println(new String(mensagemCifrada));  
             System.out.println("A mensagem original era: ");  
             System.out.println(new String(mensagemOriginal));        
  }
   
}
